The Ken Thompson Hack
チューリング章を受賞した時に暴露した
登場人物は2つある
コンパイラ
Unix (ターゲット)
コンパイラ側にハックを施すことで、Unixのlogin処理を改変している
コンパイラのコード生成部分をハックする
特定の処理部分をコンパイルする時に、
予め用意したアセンブリを吐き出すようにする
セルフホストする際の根幹のバイナリにバックドアが仕込まれている ハック済みCコンパイラバイナリA
正常なCコンパイラコード B.c
AでB.cをコンパイルして、Bを生成
このBの結果も仕込まれている
正常なCコンパイラコードC.c
BでC.cをコンパイルして、Cを生成
このCの結果にも仕込まれている
...
Quineが出てきたところから理解できなくなったmrsekut.icon そしてこれをコンパイルして出来たアセンブリファイル (gen_func_def_very_evil.s) をクワインになるように書き換えます。 gen_func_def という関数が出てきたら自身と全く同じ文字列を出力するというアセンブリに書き換えたものが gen_func_def_very_evil_quine.s です。
この辺がわからない
「自身」というのは何を指している?
3ページ
Thompson Hackを再現している記事
解説が具体的でわかりやすい